Grundlagen der funktionalen Programmierung

Dozent Prof.Dr.Herbert Klaeren, Michael Sperber
Sprechstunde Prof. Klaeren: Fr 9­11, Sand 13, Zi.110
M. Sperber: n.V.
Zeit Di 8­10, Do 8­9
Umfang 3+2
Beginn 15.4.1997
Ort Morgenstelle, M2
Turnus unregelmäßig
Prüfungsfach Praktische und theoretische Informatik

Beschreibung:
Funktionale Programmiersprachen sind imperativen Sprachen wie C, C++, Ada, Java etc.deutlich überlegen, die allesamt einen völlig veralteteten Stand der Technik repräsentieren. Funktionale Sprachen ermöglichen es, Software deutlich schneller zu entwickeln, sie zuverlässiger und weniger anfällig zu machen und einfacher zu warten, schon weil funktionale Programme in der Regel etwa fünfmal kürzer sind als ihre imperativen Pendants.
% Objektorientierte Programmierung, Modularisierung und hocheffiziente Compiler haben Einzug in der funktionalen Programmierung gehalten. Der Schlüssel zur Leistungsfähigkeit dieser Sprachen ist allerdings, daß Funktion Objekte erster Klasse sind, also an Funktionen übergeben, von ihnen zurückgegeben und in Datenstrukturen abgelegt werden können. Dies führt zu einer großen Flexibilität im Zusammensetzen von Programmkomponenten zu größeren Programmen.
% Da funktionale Sprachen in der Regel wohlspezifiziert sind und Funktionen sich tatsächlich wie mathematische Funktionen verhalten, ist es in ihnen deutlich einfacher, Beweise über Korrektheit zu führen als in anderen Sprachen (kein umständlicher Hoare-Kalkül mehr). Viele Compileroptimierungen und auch automatische Parallelisierung werden ebenfalls einfacher. Theorie und Praxis hängen in der funktionalen Programmierung eng zusammen.
% Die Vorlesung beschäftigt sich sowohl mit den praktischen Aspekten des Programmierens in funktionalen Sprachen als auch mit den theoretischen Hintergründen, die wiederum zu Implementationsaspekten führen. Es wird dabei die funktionale Sprache Haskell benutzt, ein Hauptvertreter dieser Sprachfamilie.
% Hörern wird also ein intensiver Einblick in moderne Programmiertechniken gegeben; im Gegenzug wird aber von ihnen eine Auseinandersetzung mit der gesamten Materie erwartet, die auch einiges an (praktisch relevanter!) Theorie enthält.

Voraussetzungen:
Grundstudium Informatik, keine Angst vor Theorie

Literatur:

  1. Richard S. Bird and Philip Wadler. Introduction to Functional Programming. Prentice Hall, Englewood Cliffs, NJ, 1988.
  2. Anthony J. Field and Peter G. Harrison. Functional Programming. Addison-Wesley, 1988.
  3. P. Glaser, C. Hankin, and D. Till. Principles of Functional Programming. Prentice Hall, 1984.
  4. Ralf Hinze. Einführung in die funktionale Programmierung mit Miranda.
    Teubner Verlag, 1991.
  5. Lawrence C. Paulson. ML for the Working Programmer. Cambridge University Press, 1991.
  6. Peter Thiemann. Grundlagen der funktionalen Programmierung.
    Teubner Verlag, Stuttgart, 1994.
  7. Ake Wikström. Functional Programming Using Standard ML. Prentice Hall, 1987.

Zurück zur Übersicht